package test0126;

public class TestListNode {

    static class ListNode {
        int val;
        ListNode next;
        ListNode(int val){
            this.val = val;
        }
    }

    /**
     * 线性遍历
     * @param listNode
     */
    static void traverse(ListNode listNode) {
        for (ListNode head = listNode; head != null; head = head.next) {
            System.err.println(head.val);
        }
    }

    static void traverse2(ListNode listNode){
        if(listNode == null){
            return;
        }
        //正序输出
        System.err.println(listNode.val);
        traverse2(listNode.next);
        //倒序输出
        System.err.println(listNode.val);
    }

    public static void main(String[] args) {
        ListNode n1 = new ListNode(1);
        ListNode n2 = new ListNode(2);
        ListNode n3 = new ListNode(3);
        n1.next = n2;
        n2.next = n3;
//        traverse(n1);
        traverse2(n1);
    }
}
